package cn.com.yiqi.wsc.dao.order;

import cn.com.artemis.framework.base.commons.persistence.CrudDao;
import cn.com.yiqi.wsc.Ro.OrderDetailForOutputVO;
import cn.com.yiqi.wsc.dao.order.criteria.OrderCriteria;
import cn.com.yiqi.wsc.entity.order.OrderMain;
import cn.com.yiqi.wsc.entity.order.OrderMainDTO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author 何刚
 * @ClassName: ${class}
 * @Description: TODO
 * @date 2017/3/14
 */
@Repository
public interface OrderMainDao extends CrudDao<OrderMain> {

    /**
     * 分页查询
     *
     * @param criteria
     * @return
     */
    List<OrderMainDTO> pageList(OrderCriteria criteria);


    /**
     * 获取详情
     *
     * @param criteria
     * @return
     */
    OrderMainDTO getOrderBaseInfo(OrderCriteria criteria);

    List<Long> getSubIdList(Long pid);

    /**
     * 根据Id获取 商家电话
     *
     * @param id
     * @return
     */
    String getOrgTelByOrderId(Long id);

    /**
     * 查询某个订单的主订单下的某个状态的的订单数
     * 例如 502，-1(查询502订单的主订单下状态为-1的订单数量)
     *
     * @param orderId
     * @param status
     * @return
     */
    Integer countOrderSubStatus(@Param("orderId") Integer orderId, @Param("status") Integer status);


    /**
     * 大订单的子订单数量
     * @param orderId
     * @return
     */
    Integer countOrderSub(@Param("orderId") Integer orderId);

    /**
     * 平台订单详细的查询
     * @param criteria
     * @return
     */
    List<OrderDetailForOutputVO> selectOrderDetailForOuputMain(OrderCriteria criteria);
    
    
    /**
     * 商家订单详细的查询
     * @param criteria
     * @return
     */
    List<OrderDetailForOutputVO> selectOrderDetailForOuput(OrderCriteria criteria);

}
